package sg.edu.nus.iss.ooad.jass.dao;

import java.util.List;
import sg.edu.nus.iss.ooad.jass.entity.Advertiser;

/**
 *
 * Interface class for Advertiser Data Access Object.
 *
 * @author Isak Rabin (HT082193M)
 * @version 1.0
 * @since 1.0
 *
 * Development Environment : Netbeans IDE v6.7
 * Name of the File        : IAdvertiserDAO.java
 * Creation / Modification History
 *         Isak Rabin        20-Sep-2009        Created
 *
 */
public interface IAdvertiserDAO {

        /**
         * Create new advertiser entity and store it to the persistent data.
         * @param advertiser The advertiser entity.
         * @return True if new advertiser successfully created.
         */
        public boolean createAdvertiser(Advertiser advertiser);

        /**
         * Retrieve advertiser entity from persistent data.
         * @param ID The ID of Advertiser.
         * @return Advertiser object or null if Advertiser cannot be found.
         */
        public Advertiser retrieveAdvertiser(String ID);

        /**
         * Update existing advertiser.
         * @param advertiser The advertiser entity.
         * @return True if advertiser has successfully updated.
         */
        public boolean updateAdvertiser(Advertiser advertiser);

        /**
         * Mark advertiser as deleted.
         * @param advertiser The advertiser entity.
         * @return True if advertiser has successfully mark as deleted.
         */
        public boolean deleteAdvertiser(Advertiser advertiser);

        /**
         * Retrieve  advertiser By UserID.
         * @return   advertiser Advertiser object.
         */
        public Advertiser getAdvertiserByUserID(String UserID);


        /**
         * Retrieve all advertisers.
         * @return List of advertiser.
         */
        public List<Advertiser> getAllAdvertiser();

}
